#ifndef PETRINET_H_
#define PETRINET_H_

#include <string>
#include <vector>
#include "namespaces.cpp"
#include "Place.h"
#include "Transition.h"
#include "PlaceToTransition.h"
#include "TransitionToPlace.h"

class pn::PetriNet
{
	public:
		explicit	PetriNet(const std::string&);
		virtual		~PetriNet();
		void		start();
		void		finish();
	protected:
		std::vector<Place>				mPlaces;
		std::vector<Transition>			mTransitions;
		std::vector<PlaceToTransition>	mPlacesToTransitions;
		std::vector<TransitionToPlace>	mTransitionsToPlaces;
};

#endif /*PETRINET_H_*/
